load(
    "//bazel:tachyon_cc.bzl",
    "tachyon_cc_binary",
    "tachyon_cc_library",
)

package(default_visibility = ["//benchmark/poseidon2:__pkg__"])

tachyon_cc_library(
    name = "poseidon_config",
    testonly = True,
    srcs = ["poseidon_config.cc"],
    hdrs = ["poseidon_config.h"],
    deps = ["//benchmark:config"],
)

tachyon_cc_library(
    name = "poseidon_benchmark_runner",
    testonly = True,
    hdrs = ["poseidon_benchmark_runner.h"],
    deps = [
        ":poseidon_config",
        "//benchmark:simple_reporter",
        "//tachyon/base:logging",
        "//tachyon/base/containers:container_util",
        "//tachyon/base/time",
        "//tachyon/c/base:type_traits_forward",
        "//tachyon/crypto/hashes/sponge/poseidon",
    ],
)

tachyon_cc_binary(
    name = "poseidon_benchmark",
    testonly = True,
    srcs = ["poseidon_benchmark.cc"],
    deps = [
        ":poseidon_benchmark_runner",
        ":poseidon_config",
        "//benchmark:simple_reporter",
        "//benchmark/poseidon/arkworks",
        "//tachyon/base:profiler",
        "//tachyon/c/math/elliptic_curves/bn/bn254:fr",
        "//tachyon/crypto/hashes/sponge/poseidon:poseidon_params",
    ],
)
